"""
这个里面放页面的基础操作
比如打开浏览器，点击，输入值，窗口的切换等等
"""
import time

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.remote.webelement import WebElement
from selenium.webdriver.support.wait import WebDriverWait


class Base:
    #假设，我们的浏览器驱动对象，放到成员变量里面
    def __init__(self,driver,url):
        #成员属性
        self.__driver = driver#浏览器驱动对象
        self.__driver.get(url)#打开浏览器
        self.__driver.maximize_window()#最大化窗口

    #查找元素  成员方法
    # loc 元组  里面包含元素定位方式，元素值
    # 返回值：-> WebElement  :告诉调用者，这个方法返回的是一个元素
    def __element_find_wait(self,loc)-> WebElement:
        # self.__driver.find_element(*loc)#*loc 元组解包
        return WebDriverWait(self.__driver, 10).until(lambda x: x.find_element(*loc))

    #向输入框中输入信息
    def element_send_keys(self,loc,value):
        self.__element_find_wait(loc).send_keys(value)

    #点击操作
    def element_click(self,loc):
        self.__element_find_wait(loc).click()
# 获取当前页面的url  成员方法
    def element_get_url(self):
        return self.__driver.current_url

#获取当前页面的文本  成员方法
    def get_text(self,loc):
      return  self.__element_find_wait(loc).text


#关闭浏览器  成员方法
    def quit(self):
        self.__driver.quit()


# if __name__ == '__main__':
#
#     base=Base(webdriver.Edge(),"https://www.baidu.com/")
#     base.element_send_keys((By.CSS_SELECTOR,"#kw"),"selenium")
#
#
#     time.sleep(3)
#     base.quit()